package Javacode_6;
import java.util.TreeSet;
class Student implements Comparable<Student> {
    private String name;
    private int age;

    // 构造方法
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 重写toString方法
    @Override
    public String toString() {
        return   name + "   " + age;
    }

    // 重写compareTo方法，实现按年龄排序
    @Override
    public int compareTo(Student s) {
        // 主要排序条件：按年龄从低到高
        int ageCompare = this.age - s.age;
        if (ageCompare != 0) {
            return ageCompare; // 年龄不同时，直接返回年龄差值
        } else {
            // 年龄相同时，按姓名排序（保证唯一性）
            return this.name.compareTo(s.name);
        }
    }
}
public class TreeSetDemo {
    public static void main(String[] args) {
        // 创建泛型为Student的TreeSet集合
        TreeSet<Student> students = new TreeSet<>();

        // 向集合中添加学生对象
        students.add(new Student("linqingxia", 27));
        students.add(new Student("zhangguorong", 29));
        students.add(new Student("wanglihong", 23));
        students.add(new Student("linqingxia", 27)); // 与第一个对象完全相同，会被去重
        students.add(new Student("liushishi", 22));
        students.add(new Student("wuqilong", 40));
        students.add(new Student("gaoyuanyuan", 22));

        // 遍历集合（已按年龄从低到高排序）
        System.out.println("TreeSet中的学生对象（按年龄升序）：");
        for (Student student : students) {
            System.out.println(student);
        }
    }
}
